home *** CD-ROM | disk | FTP | other *** search
- { determine if ANSI.SYS loaded on micro }
- Function AnsiSysLoaded : Boolean;
- Var
- _AX : Word;
- Regs: Registers;
- begin
- Regs.AX := $1a00;
- Intr($2f,Regs);
- _Ax := Regs.AX;
- ANSISysLoaded := Lo(_AX) = $FF
- end;
-
- { ------------------------------------------------------------------------
- DETECTANSI
- Detect whether the remote user has ANSI support For initial Graphic mode.
- ------------------------------------------------------------------------ }
- Function DetectAnsi : Boolean;
- Var
- AnsiDetected : Boolean;
- AnsiChar : Char;
- begin
- AnsiDetected := False;
- If (OrgCarr) then { not sysop_local then }
- begin
- Fossil.ModemPut(#27+'[6n'); { Esc[6n (Cursor Position Request) }
- Fossil.FlushBuff;
- Crt.Delay(2000); { waits For response (2 second) }
- If (Fossil.SerialChar) then { if modem buffer is not empty }
- begin
- AnsiChar := Fossil.Receive;
- If (AnsiChar in [#27,'0'..'9','[','H']) then
- AnsiDetected := True;
- end;
- Crt.Delay(1000); { Pause 1 second }
- Fossil.PurgeLine; { Purge input buffer }
- Fossil.PurgeOutput; { Make sure nothing is in output buffer }
- end
- else
- { if local, check For ANSI.SYS loaded }
- AnsiDetected := AnsiSysLoaded;
- { here you might wanna say:
- if not AnsiSysLoaded then UseAnsiSimulator := True; }
-
- If AnsiDetected then
- PrintLn('ANSI Graphics detected.')
- else
- PrintLn('ANSI Graphics disabled.');
- DetectAnsi := AnsiDetected;
- end;